
typedef bool (*spiusbdisk_opn_parent_folders_t)(char **pfilename, bool open_root);
typedef bool (*spiusbdisk_mount_t)();
typedef void (*spiusbdisk_ls_recursive_t)(uint8_t level, uint32_t dir_parent_cluster, char *dir_name);
typedef bool (*spiusbdisk_ls_reset_t)();
typedef dir_t* (*spiusbdisk_ls_next_t)();

typedef bool (*spiusbdisk_open_t)(char *filename, uint8_t oflag);
typedef void (*spiusbdisk_close_t)();
typedef bool (*spiusbdisk_seekSet_t)(uint32_t pos);
typedef bool (*spiusbdisk_remove_t)(const char* path);
typedef bool (*spiusbdisk_mkdir_t)(const char* path);

typedef uint32_t (*spiusbdisk_fileSize_t)();
typedef bool (*spiusbdisk_chdir_t)();
typedef uint8_t (*spiusbdisk_fileRead_t)(uint8_t *buf, uint16_t reqCount, uint16_t *realCount);
typedef uint8_t (*spiusbdisk_fileWrite_t)(uint8_t *buf, uint16_t reqCount, uint16_t *realCount);
typedef uint8_t (*spiusbdisk_getLongName_t)( uint8_t *PathName, uint8_t *LongName );

extern spiusbdisk_opn_parent_folders_t spiusbdisk_opn_parent_folders;
extern spiusbdisk_mount_t spiusbdisk_mount;
extern spiusbdisk_ls_recursive_t spiusbdisk_ls_recursive;
extern spiusbdisk_ls_reset_t spiusbdisk_ls_reset;
extern spiusbdisk_ls_next_t spiusbdisk_ls_next;

extern spiusbdisk_open_t spiusbdisk_open;
extern spiusbdisk_close_t spiusbdisk_close;
extern spiusbdisk_seekSet_t spiusbdisk_seekSet;
extern spiusbdisk_remove_t spiusbdisk_remove;
extern spiusbdisk_mkdir_t spiusbdisk_mkdir;

extern spiusbdisk_fileSize_t spiusbdisk_fileSize;
extern spiusbdisk_chdir_t spiusbdisk_chdir;
extern spiusbdisk_fileRead_t spiusbdisk_fileRead;
extern spiusbdisk_fileWrite_t spiusbdisk_fileWrite;
extern spiusbdisk_getLongName_t spiusbdisk_getLongName;
